package com.book.core.domain;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.book.core.mode.UpdateGroup;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 图书表
 * @TableName books
 */
@TableName(value ="books")
@Data
public class Books implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    @ExcelProperty("图书编号")
    @NotNull(message = "图书编号不能为空", groups = {UpdateGroup.class})
    private Long bookId;

    /**
     * 唯一编号
     */
    @NotBlank(message = "图书编号不能为空")
    private String isbn;

    /**
     *封面
     */
    @ExcelProperty("封面")
    private String cover;

    /**
     * 定价
     */
    @ExcelProperty("定价")
    @NotNull(message = "定价不能为空")
    private BigDecimal price;

    /**
     * 作者
     */
    @ExcelProperty("作者")
    @NotBlank(message = "作者不能为空")
    private String author;

    /**
     * 图书名称
     */
    @ExcelProperty("图书名称")
    @NotBlank(message = "图书名称不能为空")
    private String title;

    /**
     * 副标题
     */
    @ExcelProperty("副标题")
    private String subtitle;

    /**
     * 出版社
     */
    @ExcelProperty("出版社")
    private String publisher;

    /**
     * 出版日期
     */
    @ExcelProperty("出版日期")
    @DateTimeFormat(value = "yyyy年MM月dd日")
    private Date publishDate;

    /**
     * 图书位置
     */
    @ExcelProperty("图书位置")
    private String location;

    /**
     * 状态
     */
    @ExcelProperty("状态")
    private Integer status;

    /**
     * 页数
     */
    @ExcelProperty("页数")
    private Integer pages;

    /**
     * 版次
     */
    @ExcelProperty("版次")
    private Integer edition;

    /**
     * 分类id
     */
    @ExcelProperty("分类id")
    private Integer categoryId;

    /**
     *库存
     */
    @ExcelProperty("库存")
    private Integer stock;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
